Interactive basketball system

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for a basketball backboard. The basketball backboard includes a display screen, a plurality of sensors configured to generate sensor data regarding a shot attempt of a user, imaging devices configured to generate image data of the shot attempt, a speaker, and a control unit. The control unit can receive (i) the sensor data from the plurality of sensors and (ii) the image data from the imaging devices. Based on the received sensor data, the control unit can determine whether the shot attempt was successful. Based on the received image data and whether the shot attempt was successful, the control unit can generate analytics that indicate characteristics of the user and the shot attempt and recommendations for improving the shot attempt for subsequent shot attempts. The control unit can provide output data representing the analytics.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of, and claims benefit under35 USC 120 to, international application PCT/US2021/046468, filed Aug.18, 2021, which claims benefit under 35 USC 119(e) to U.S. ApplicationNo. 63/067,422, filed Aug. 19, 2020. The entire disclosure of theseapplications are incorporated by reference herein.

TECHNICAL FIELD

The specification generally relates to the sport of basketball, and oneparticular implementation relates to systems and methods for basketballgames and various trainings.

BACKGROUND

The game of basketball is a sport that can include two teams, opposingone another on a basketball court. The two teams can compete against oneanother with an objective of shooting a basketball through a defender'sbasketball hoop while preventing the opposing team from shooting throughtheir own basketball hoop. Players with varying skill level can playbasketball, and often, practice basketball skills to improve theirchances of success during a game of basketball against opponents.Moreover, players may hire coaches, trainers, or others to assist withtraining their basketball skillset over time.

SUMMARY

This specification describes a basketball system that includes specificcomponents for monitoring a user playing basketball. In particular, thebasketball system can include a backboard, a rim, and a pole thatsupports the backboard. The backboard can include multiple layers, eachlayer housing different components. The components can be positioned inparticular manners and varying layouts in the backboard to enable thecomponents to monitor one or more characteristics of one or more usersinteracting with the basketball system on a court within proximity tothe basketball system.

In some implementations, the basketball system can be placed at abasketball court. The basketball court can include, for example, adriveway, a street, a court inside a gymnasium that can includeprofessional, collegiate level, or younger dimensions, and other variouslocations. The court can include, for example, two halves, each with afree throw line, a three-point line, a half-court line, and othercharacteristics. The basketball system can monitor characteristics ofusers that play basketball up to the half-court line or to a full lengthof the court. In other examples, the basketball system can monitorcharacteristics of users that play basketball when playing in theirdriveway, street, or other locations.

The basketball system can monitor characteristics of one user playingbasketball or multiple users playing basketball. In particular, a usercan interact with the basketball system to indicate that he/she requeststo be tracked by the basketball system. The user can play basketballwith the basketball system and the basketball system can generatecharacteristics that describe the user's play. For example, thecharacteristics can include a number of shots attempted by the user, anumber of shots made by the user from the attempts, movements of theuser, body posture during shot attempts, characteristics of each shotattempt by the user, and other characteristics. The basketball systemcan provide these characteristics to a client device of the user forlater viewing or display these characteristics on the basketball systemin real time while the user interacts with the basketball system.

In some implementations, the backboard of the basketball system caninclude the components for tracking one or more users playing basketballwith the basketball system and the ability to provide feedback to theusers. For example, the backboard of the basketball system can includemultiple layers each housing different components. A front layer of thebackboard can include a transparent coating for protection of thecomponents within the backboard. A second layer of the backboard caninclude one or more components for monitoring the users interacting withthe basketball system. In some implementations, the second layer canalso include a display for providing feedback to the user playingbasketball along with the sensors. In other implementations, the displaycan be positioned in a third layer and the components can be provided inthe second layer. In some examples, the layers of the backboard can beordered from front to back as: first layer, second layer, and/or thirdlayer.

In some implementations, the components in the backboard can beconfigured to monitor the users playing basketball and provide feedback.For example, the components can include a camera sensing system, one ormore speakers, one or more microphones, multiple sensors, a controlunit, a display screen, and a power unit. The control unit can receivethe data from each of these components, generate characteristics of theuser(s), and provide feedback to the user(s) to help improve theirbasketball skillset or performance. In some examples, the control unitcan train a machine-learning model for tracking and generating thecharacteristics of the user(s) playing basketball. The machine-learningmodel can be, for example, a convolutional neural network (CNN). Thesecomponents and their functions will be further described in detailbelow.

In some implementations, the basketball system can offer various gamesfor the user(s) to play. For example, the basketball system enables theuser to play against another user or other users at a geographicallydifferent location. In this example, the other user can play basketballwith their own basketball system, and the two basketball systems cancommunicate with one another in real time as the two users play withtheir respective basketball systems. For example, both backboards candisplay shot statistics, a real-time video feed of the other user'sbasketball gameplay, and other information that each user can view whileinteracting with the basketball system. In another example, thebasketball system can enable users to play games such as, trainingsessions modes, local head-to-head matchups, live stream mode, andworldwide competition mode. These gameplays will be further describedbelow.

In one general aspect, a basketball board comprising: a display screen;a plurality of sensors configured to generate sensor data regarding ashot attempt of a user; one or more imaging devices configured togenerate image data of the shot attempt; a speaker; and a control unit,wherein the control unit is configured to: receive (i) the sensor datafrom one or more of the plurality of sensors and (ii) the image datafrom the one or more imaging devices; based on the received sensor data,determine whether the shot attempt was successful; based on the receivedimage data and whether the shot attempt was successful, generateanalytics that indicate (i) characteristics of the user, (ii)characteristics of the shot attempt, and (iii) recommendations forimproving the shot attempt for subsequent shot attempts, (iv) gameperformance; and provide output data representing the analytics to oneor more of (i) the speaker, (ii) the display screen, and (iii) a clientdevice of the user.

Other embodiments of these and other aspects of the disclosure includecorresponding systems, apparatus, and computer programs, configured toperform the actions of the methods, encoded on computer storage devices.A system of one or more computers can be so configured by virtue ofsoftware, firmware, hardware, or a combination of them installed on thesystem that in operation cause the system to perform the actions. One ormore computer programs can be so configured by virtue of havinginstructions that, when executed by a data processing apparatus, causethe apparatus to perform the actions.

The foregoing and other embodiments can each optionally include one ormore of the following features, alone or in combination. For example,one embodiment includes all the following features in combination.

In some implementations, the backboard includes wherein the plurality ofsensors comprise one or more of LIDAR sensors, motion sensors, tripsensors, and accelerometers, and wherein the LIDAR sensors areconfigured to detect the shot attempt of the user and one or both of anangle and a height of the basketball from the shot attempt; the motionsensors are configured to detect one or more users on a court within aproximity to the backboard; the trip sensors are configured to determinewhether the shot attempt was successful; and the accelerometers areconfigured to determine an indication of a location of the basketballrelative to the backboard based on accelerometer data and a vibrationpattern.

In some implementations, the backboard includes wherein the one or moreimaging devices comprise one or more depth sensing cameras or one ormore RGB cameras, wherein the one or more depth sensing cameras areconfigured to perform one or more of the following (i) detect the useron a court, (ii) track movements of the user, (iii) detect thebasketball used by the user for the shot attempt, (iv) track movementsof the basketball, (v) detect a body posture of a user, and wherein theone or more RGB cameras are configured to (i) record image data of afield of view of the court and (ii) record image data of an areaunderneath the backboard to detect when the shot attempt of the usercorresponds to a layup.

In some implementations, the backboard includes a rim coupled to thebackboard.

In some implementations, the backboard includes wherein the plurality ofsensors comprise trip sensors configured to determine whether thebasketball passes through the rim from the shot attempt.

In some implementations, the backboard includes wherein the speaker isconfigured to provide audible output in response to receiving the outputdata representing the analytics from the control unit.

In some implementations, the backboard includes wherein the displayscreen is configured to display one or more of (i) the image data fromthe one or more imaging devices, (ii) a heads up display (HUD)displaying shot attempts and shots made by the user or any other datapertinent to the user and/or the game/training session, and (iii) imagedata from a second control unit connected over a network.

In some implementations, the backboard further includes a protectivelayer coupled to the display screen.

In some implementations, the backboard includes wherein the protectivelayer comprises tempered glass.

In some implementations, the backboard includes a rim coupled to theprotective layer.

In some implementations, the backboard includes wherein the control unitis configured to provide the received image data to a trained machinelearning model to produce (i) the characteristics of the user and (ii)the characteristics of the shot attempt, and (iii) game performance,wherein the characteristics of the user comprise an identification ofthe user and a location of the user relative to the backboard, whereinthe characteristics of the shot attempt comprise an angle of basketballtrajectory and an indication of whether the basketball passes throughthe rim, wherein the game performance comprises data associated with agame played by the user; and the control unit is configured to store thecharacteristics of the user and the characteristics of the shot attemptin a profile of the user in a server external to the backboard.

In some implementations, the backboard includes wherein the trainedmachine-learning model is configured to identify and track multipleusers on a court simultaneously and the control unit is configured to:associate the multiple users identified by the trained machine-learningmodel each with a stored user profile; and update each of the storeduser profiles with the characteristics of each user and thecharacteristics of the shot attempt for each user.

In some implementations, the backboard includes wherein the serverstores a plurality of profiles corresponding to different users.

In some implementations, the backboard includes wherein the control unitis configured to: generate the recommendations for improving the shotattempt for subsequent shot attempts, wherein the recommendationscomprise one or more of (i) a body posture, (ii) an arm angle, (iii) arelease point of the basketball, and (iv) a trajectory of thebasketball; display the generated recommendations on the display screen;and provide an audible voice output to the speaker to communicate thegenerated recommendations to the user.

In some implementations, the backboard includes wherein the control unitis configured to provide the generated recommendations to the clientdevice of the user over a network.

In some implementations, the backboard includes wherein the control unitis configured to: determine resultant data based on the received sensordata that comprises one or more of (i) whether the shot attempt resultedin the basketball passing through the rim, (ii) whether the shot attemptresulted in the basketball bouncing off a front side of the backboardand not passing through the rim, (iii) whether the shot attempt resultedin the basketball bouncing off the rim and not passing through the rim,(iv) location of the shot attempt of the user, (v) an arc of thebasketball during the shot attempt by the user; combine the resultantdata with (i) the characteristics of the user and (ii) thecharacteristics of the shot attempt output from the trained machinelearning model; and store the received sensor data, the received imagedata, the combined resultant data, the characteristics of the user, thecharacteristics of the shot attempt, and the generated recommendationsin the profile of the user on the server.

In some implementations, the backboard includes wherein the control unitis configured to: receive an indication from the user to participate ina competition against a second user; connect to a second control unitassociated with a second backboard used by the second user over anetwork, wherein the second control unit is located at a geographicallydifferent location than the control unit; provide the received imagedata to the second control unit over the network; receive second imagedata from the second control unit over the network; provide the receivedsecond image data from the second control unit to the display screen;count a number of shot attempts made by the user based on the receivedsensor data and the received image data; receive a second number of shotattempts made by the second user from the second control unit; provideto the display screen (i) the number of shot attempts made by the userand (ii) the second number of shot attempts made by the second user,wherein the display screen overlays the number of shot attempts and thesecond number of shot attempts over the received second image data; andprovide the number of shot attempts made by the user to the secondcontrol unit.

In some implementations, the backboard includes wherein the control unitis configured to: receive an indication from the user to participate ina competition against a second user in a local competition; provide thereceived image data to the display screen; count a number of shotattempts made by the user based on the received sensor data and thereceived image data; count a number of shot attempts made by the seconduser based on the received sensor data and the received image data; andprovide to the display screen (i) the number of shot attempts made bythe user and (ii) the number of shot attempts made by the second user,wherein the display screen overlays the number of shot attempts and thesecond number of shot attempts over the received image data.

In some implementations, the backboard includes wherein the control unitis configured to: determine whether the shot attempt resulted in thebasketball passing through the rim based on: generating, in the receivedimage data, an inner conical region and an outer conical region, theinner conical region comprises a first cone with a base that coincideswith the rim and a first height, the outer conical region comprises asecond cone with a radius centered at the center of the rim and a secondheight, determining whether the basketball enters a first portion of theouter conical region and exits a second portion of the outer conicalregion; in response to exiting the second portion of the outer conicalregion, determining whether the basketball enters a third portion of theinner conical region and exits the base of the inner conical region; andin response to determining that the basketball exits the base of theinner conical region, determining that the shot attempt resulted in amake as the basketball passed through the rim.

In some implementations, the backboard includes wherein the control unitis configured to: in response to determining that the basketball entersthe third portion of the inner conical region and does not exit the baseof the inner conical region, determine that the shot attempt resulted ina miss as the basketball did not passing through the rim.

The details of one or more embodiments of the subject matter of thisspecification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages of thesubject matter will become apparent from the description, the drawings,and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram that illustrates an example of a system formonitoring a user playing basketball.

FIG. 1B is a block diagram that illustrates an example of a system of abackboard.

FIG. 1C is another block diagram that illustrates an example of a systemof a backboard.

FIG. 2A is a block diagram that illustrates an example of videoanalytics for detecting a basketball passing through a rim.

FIG. 2B is a block diagram that illustrates an example of videoanalytics for detecting a basketball not passing through a rim.

FIG. 3 is a block diagram that illustrates an example of a system of twousers playing basketball with connected basketball systems.

FIG. 4 is a block diagram that illustrates an example computing systemof a backboard system.

FIG. 5 is a flow diagram that illustrates an example of a process forgenerating characteristics of a user playing basketball.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIG. 1A is a block diagram that illustrates an example of a system 100for monitoring a user or users interacting with the system 100 throughan activity, such as a user or users playing basketball. The system 100includes a basketball system 107, a basketball court 108, one or moreusers 102, and a client device 104 associated with the one or more users102. The system 100 can also include a network and server external tothe basketball system 107. Briefly, the system 100 can monitor the oneor more users 102 playing with a basketball 106 and the basketballsystem 107, generate data that describes the characteristics of the oneor more users 102 playing with the basketball 106, and provide data asfeedback to the one or more users 102. The system 100 can provide thedata as feedback to the client device 104 or to a display of thebasketball system 107. FIG. 1A illustrates various operations inexemplary stages (A) through (G) which can be performed in the sequenceindicated or another sequence.

In some implementations, the basketball system 107 can include abackboard 110, a pole 113, and a rim 112. The basketball system 107 caninclude various components and algorithms that enable tracking andmonitoring of the one or more users 102 playing the game of basketball.Additionally, the various components of the basketball system 107 cangenerate recommendations to improve a basketball skillset of the user102. The recommendations can focus on improving, for example, atrajectory of a basketball shot for a user, a user's body posture duringa basketball shot, dribbling techniques of the user, and otherbasketball techniques. As will be further described below, thebasketball system 107 can track multiple users 102, track the users'basketball characteristics, and store this data in a user profilelocated in a server external to the basketball system 107.

Moreover, the basketball system 107 enables the one or more users 102 toplay basketball games with each other at the same basketball system andwith other users located remote from their own respective basketballsystems, including other basketball systems located at locations aroundthe world. In some implementations, the user 102 can request to playbasketball games or other activities, such as basketball trainingsessions, by interacting with the basketball system 107. In otherimplementations, the user 102 can request to play basketball games withthe basketball system 107 by interacting with the client device 104 thatcommunicates with the basketball system 107 over a network, such as oneor more of Bluetooth, Wi-Fi, Internet, cloud access, and a cellular datanetwork, e.g., a network with 4G and 5G capabilities. As will be furtherdescribed below, the basketball games or other activities can include,for example, a training session mode, a head-to-head matchup mode, aworldwide competition mode, and a live stream mode, to name a few.

In some implementations, the basketball system 107 can include a rim 112and a backboard 110 that is vertically supported above a basketballcourt 108 or another playing surface, such as a driveway, street, lawn,or other applicable surface. The basketball system 107 includes a pole113 or support on which the backboard 110 and the rim 112 are supported.In some examples, the pole 113 can be inserted or embedded a particulardepth into the ground to maintain stability of the basketball system107. In other examples, the pole 113 can be inserted into a baseplatform above the ground that maintains stability of the basketballsystem 107. In some cases, the basketball system 107 can be a smallsized basketball system that fits over a doorframe in an office orbedroom, for example.

In some implementations, the backboard 110 can include multiple layers,each layer housing different components. In particular, a front layer ofthe backboard 110 can include a transparent coating for protection ofthe components within the backboard. For example, a front layer of thebackboard 110 can include tempered glass that (i) protects thecomponents within the backboard 110 and (ii) allows a user to see adisplay screen behind the front layer. The backboard 110 can include asecond layer, which is seated or positioned behind the front layer. Thesecond layer can include one or more components, e.g., sensors andcameras, for monitoring and generating data, e.g., sensor data and imagedata, associated with user(s) on the court. In some implementations, thesecond layer of the backboard can also include a display for providingfeedback to the one or more users playing basketball on the basketballcourt 108. In this case, the sensors and cameras can be coupled to thedisplay screen. In other implementations, the backboard can include athird layer that is positioned behind the second layer. In thisimplementation, the third layer can include the display that providesfeedback to the one or more users playing basketball on the basketballcourt 108.

In some implementations, the basketball system 107 can include a controlunit. The control unit can include one or more central processing units(CPUs), one or more graphical processing units (GPUs), and memorycomponents for executing software by the CPUs and GPUs. In someexamples, the control unit can be positioned on a rear side of thebackboard 110. In other examples, the control unit can be positionedwithin either the second layer or the third layer of the backboard 110.

Generally, the control unit can receive the sensor and image data fromthe one or more components within the backboard. Based on the receivedsensor and image data, the control unit can generate data regardingbasketball characteristics of the user or users 102 playing basketballwith the basketball system 107 on the basketball court 108. The controlunit can identify a user profile associated with the user 102, forexample, and store the generated basketball characteristics of the userin the profile for that user. The control unit can store the userprofile and associated data within the backboard 110. Alternatively, thecontrol unit can access a server external to the backboard 110 over anetwork and store the generated basketball characteristics within anidentified user profile in the server. The network can include, forexample, one or more of Bluetooth, Wi-Fi, Internet, cloud access, and acellular data network, e.g., 4G and 5G capabilities.

In some implementations, the control unit can generate recommendationsfor a particular user based on the data regarding basketballcharacteristics of the user. The control unit can display the generatedrecommendations to the display screen of the backboard. Additionally,the control unit can provide the generated recommendations to the clientdevice 104 of the user 102. The control unit can also store thegenerated recommendations with the generated profile of an identifieduser, e.g., with the profile of user 102.

In some implementations, the basketball system 107 can include a powersource that powers the one or more components coupled to the backboard110. For example, the power source can power the one or more componentswithin the second layer of the backboard 110, the display within thebackboard 110, and the control unit. The power source can include, forexample, a power plug that is inserted into an outlet, a solar energypanel coupled to the basketball system 107, or a rechargeable batterypack attached or coupled to the basketball system 107.

In some implementations, the backboard 110 can include one or morecomponents that monitor the user(s) 102 playing with the basketball 106on the basketball court 108. In particular, the one or more componentscan include multiple sensors and multiple cameras positioned within thebackboard 110. The multiple sensors can include, for example, one ormore vibration sensors, one or more trip sensors, one or moreaccelerometers, light detection and ranging (LIDAR) sensors, one or moremotion sensors, and one or more pressure sensors. The multiple camerascan include depth sensing cameras, such as real sense depth cameras, andred green blue (RGB) cameras. The control data can receive the data fromeach of the multiple sensors and from each of the multiple cameras togenerate characteristics about the user 102 playing basketball.

Each of the sensors included within the backboard 110 can be configuredfor a different purpose. For example, the vibration sensors can beconfigured to detect a vibration of the basketball system 107 from thebasketball 106 (i) bouncing off the rim 112, (ii) bouncing off thebackboard 110, (iii) passing through the rim 112, and (iv) a user 102dribbling the basketball on the basketball court 108. The trip sensorscan be configured to determine whether user 102's shot attempt wassuccessful. A successful shot attempt can indicate that the basketball106 passed through the rim 112. An unsuccessful shot attempt canindicate that the basketball 106 did not pass through the rim 112. Thiswill be further illustrated and described below.

The accelerometers can be configured to determine a location of thebasketball relative to the backboard based on accelerometer data and avibration pattern. For example, when user 102 shoots the basketball 106towards the basketball system in an unsuccessful shot, the basketball106 may bounce off the rim 112 at a particular location. The locationcan be, for example, the front of the rim 112, the back of the rim 112,or a side of the rim 112. Additionally, the location can be, forexample, a particular location on a front side of the backboard. Basedon where the basketball 106 bounces off the backboard 110, thebasketball system 107 can exhibit a specific vibration pattern. Thespecific vibration pattern can correspond to a speed or frequency atwhich a component of the basketball system 107, e.g., backboard 110, rim112, pole 113, or a combination of the above, vibrates. Theaccelerometers can be configured to measure the speed or frequency ofthe vibration pattern and provide the detected vibration pattern to thecontrol unit.

In some examples, the accelerometer can determine the location that thebasketball 106 bounced off the basketball system 107 based on thedetermined vibration pattern. The accelerometer can compare thedetermined vibration pattern to one or more stored vibration patterns.Each stored vibration pattern can indicate a location of where thebasketball 106 hit on the basketball system 107. In this case, theaccelerometer can provide the vibration pattern and the location ofwhere the basketball 106 bounced off the basketball system 107, ineither a successful or an unsuccessful shot attempt, to the controlunit. In other examples, the control unit can use the accelerometer datain conjunction with a signal-processing algorithm to determine thespecific vibration pattern inherent in the different strike locations ofthe rim. For example, the control unit can sample the accelerometerdata, run the sampled data through one or more matched filters to seekto identify the vibration pattern, and identify the vibration patternthat most closely matches to the matched filter. In other examples, thecontrol unit can apply other signal-processing algorithms such aslow-pass filters, high-pass filters, acoustic modeling, waveformmatching, Fast Fourier transforms, Acceleration signal matching, andmatching between signals based on statistical properties.

In some implementations, the LIDAR sensors can be configured to detect ashot attempt of user 102 and to detect characteristics of the shotattempt of the basketball 106 from the user 102. For example, the LIDARsensors can indicate that a detection of the shot attempt based on auser 102's release of basketball 106 and the body posture of user 102during the shot attempt. LIDAR sensors can produce thousands of pointsper second at a resolution of millimeters for an object within itsrange, when the range may be 15 meters, for example. The LIDAR sensorscan detect when the basketball 106 separates from the user 102 during ashot attempt. Additionally, the LIDAR sensors can detect thecharacteristics of the shot attempt of the basketball 106 that caninclude an angle and height of the basketball 106 during the shotattempt. The LIDAR sensors can indicate an angle of the basketball 106relative to the rim 112 during time increments of the shot attempt ofthe basketball 106's trajectory. Additionally, the LIDAR sensor canindicate a height of the basketball 106 relative to the basketball court108 during time increments of the shot attempt of the basketball 106'strajectory. For example, the LIDAR sensor can indicate that the angle ofthe basketball 106 is 45 degrees at time t0, 30 degrees at time t1, 22.5degrees at t2, until the basketball reaches the rim 112 at −35 degreesat time tN. The LIDAR sensors can provide this data to the control unitas the user 102 plays basketball. In some examples, the LIDAR sensor canmeasure and provide the angle of the basketball shot by measuring anangle between the basketball court and the tangent of the initial arc ofthe basketball shot at t0. Generally, the angle of the shot that has achance of becoming a make is between 35 to 60 degrees, of which theLIDAR sensors can measure.

In some implementations, the motion sensors can be configured to detectone or more users 102 on the basketball court 108 within a proximity tothe backboard 110. For example, the motion sensors can detect movementon the basketball court 108 and can detect movement of a basketball 106.Based on the detection of movement, in some examples, the motion sensorscan indicate whether the movement corresponds to a user 102 movement orto a basketball 106 movement. In other examples, the motion sensors canprovide detection of the motion data to the control unit. As will befurther described below, the control unit can collate the motion data,other sensor data, and the image data to determine whether the movementcorresponds to a user 102 or a basketball 106.

In some implementations, the pressure sensors can be configured todetect and calculate a position of where the basketball 106 hit thebackboard 110. Based on a location where the basketball 106 hit thebackboard 110, the control unit can calculate the ball trajectory fromthe user 102's shot attempt. The location where the basketball 106 hitthe backboard 110 can be provided in locational coordinates, e.g.,Cartesian or polar coordinates, relative to a front side of thebackboard 110. In other examples, the control unit can determine thelocation where the basketball 106 hit the backboard 110 based on imagedata and sensor data from other sensors without using the pressuresensor. For example, the control unit can predict the location where onthe backboard 110 the basketball 106 will hit based on initialconditions of where the basketball 106 was released by the user 102,known constants of gravity, and air drag, and parabolic mathematicalequations. Data provided from the LIDAR sensors can be helpful in makingthis location determination.

As mentioned above, the multiple cameras can include depth sensingcameras and RGB cameras. The multiple cameras or imaging devices caneach be configured to perform different functions. For example, thebackboard 110 can include one to three depth-sensing cameras. Otherexamples are also possible. For example, the backboard 110 can includemore than three depth-sensing cameras, such as eight depth-sensingcameras, or more. The depth sensing cameras can be configured to (i)detect the user 102 on the basketball court 108, (ii) track movements ofthe user 102, (iii) detect the basketball 106 used by the user 102 forthe shot attempt, (iv) track movements of the basketball 106, and (v)detect a body posture of user 102. For example, the three depth sensingcameras can have overlapping fields of view (FOV) to include the widestview of the basketball court 108.

For example, the depth sensing cameras located in the backboard 110 canbe configured to detect the user 102 on the basketball court 108 basedon software that detects movement of user 102 and identification of theuser 102. The depth sensing cameras can detect and identify the user 102without using machine-learning models, e.g., convolutional neuralnetworks (CNNs), which provides advantages over prior systems. Moreover,the depth sensing cameras can track a movement of the user 102 as theuser moves along the basketball court 108. The user can move, forexample, to a location behind the free throw line to take attempt ashot, to a location behind the three-point line to attempt a shot, or toany other location on the basketball court 108.

The depth sensing cameras can track the user 102 by generatinglocational coordinates of the user 102 along the basketball court 108,and providing the locational coordinates of the user 102 within theimage data to the control unit. Similarly, the depth sensing cameras cantrack the basketball 106 or basketballs by generating locationalcoordinates of the basketball 106 along the basketball court 108, andproviding the locational coordinates of the basketball 106 within theimage data to the control unit. For example, within each frame of imagedata recorded by the depth sensing cameras, the depth sensing camerascan draw a box around the identified user 102 and the basketball 106 andattach locational coordinates to each box, respectively. In this manner,the control unit can determine from each frame of the image data thelocation of user 102 and the basketball 106 as they move. Moreover, thedepth sensing cameras can track multiple basketballs and multiple userson the basketball court 108. The depth sensing cameras can also trackand associate shot attempts and shot makes/misses for each user of themultiple users.

The depth sensing cameras can also track a body posture of user 102. Thebody posture of user 102 can correspond to a posture of the user duringdribbling, during a shot attempt, after a shot attempt, e.g., known as afollow through, and moving to rebound the basketball 106 should the user102's shot attempt be unsuccessful, to name a few examples. The bodyposture detected by the depth sensing cameras can indicate a position ofthe body, in locational coordinates. The depth sensing cameras canprovide the body posture detection to the control unit, where furtheranalytics can be performed on the body posture detection data.

In some implementations, the backboard 110 can utilize the LIDAR sensorsinstead of the depth sensing cameras. In addition to the functionalitydescribed above with respect to the LIDAR sensors, the LIDAR sensors canalso be configured to perform the functionality described by the depthsensing cameras. This functionality can include detecting identificationand movement of a user or users on the basketball court. Moreover, theLIDAR sensors can be configured to track movement of identified usersover time. The LIDAR sensors can be configured to identify and monitormovement of users without the use of machine-learning models. Similarly,the LIDAR sensors can identify and track movement of one or morebasketballs on the basketball court 108, similar tracking movement ofone or more basketball by the depth-sensing cameras.

In some implementations, the backboard can include one or more RGBcameras that are configured to perform specific functions. Inparticular, the specific functions can include (i) recording image dataof a field of view of the basketball court 108 and (ii) recording imagedata of an area underneath the backboard to detect when the shot attemptof the user 102 corresponds to a particular type of shot. For example,the backboard 110 can include one or two RGB cameras. The RGB camera(s)can record, in real time, an area of the basketball court 108 withinproximity to the backboard 110. The area can include, for example, anarea up to a half court line on the basketball court 108, a length ofthe full court if the court corresponds to a regulation basketballcourt, a driveway area, or some other area. Additionally, the RGB cameracan record image data of an area below the rim 112, which may be usedwhen user 102 shoots a layup or another type of shot underneath the rim112 or near the rim 112. The RGB camera can provide the recorded imagedata to the control unit for further analytics and usages, which will befurther described below.

Referring to FIG. 1A, during stage (A), user 102 can request to interactwith basketball system 107 by, for example, requesting to play abasketball game. In some implementations, user 102 can access abasketball application on their client device 104. The user 102 can login to the basketball application using authentication credentials, e.g.,username and password, and can gain access to the applications offeredby the basketball system 107, such as games, training sessions, and thelike. The user 102 can select to interact with the basketball system 107using the basketball 106. For example, as illustrated in system 100, theuser 102 can select a game to count the number of shots made in apredetermined amount of time.

In other implementations, the user 102 can communicate with thebasketball system 107 to request to play a basketball game with thebasketball system 107. The user 102 can provide a verbal command, e.g.,“Hey Huupe,” to the basketball system 107 or perform a hand wave to wakeup the basketball system 107. The components within the backboard 110,e.g., the microphone and/or the depth sensing cameras, can detect theuser communicating with the basketball system 107 and perform functionsto detect the user. For example, the microphone and the depth sensingcameras can provide the verbal command, e.g., “Hey Huupe,” and the imagedata detecting the user 102, respectively, to the control unit. Thecontrol unit can determine from the audio data and the image data (i) anidentification of the user 102 and (ii) an indication that the controlunit is to provide the user 102 with access to a list of games to play.

The control unit can provide the list of games to play to the displayscreen of the backboard 110 or to the user's device 104. Additionally,or alternatively, the control unit can provide the list of games to playin an auditory manner to the speakers of the backboard 110. The user 102can select which game to play by speaking to the basketball system 107or making a selection via the user's client device 104. For example, theuser 102 can indicate “Hey Huupe, play shot timer” and the control unitcan recognize the voice command and determine the user 102 requests toplay the shot timer game. Alternatively, the user 102 can select whichgame to play by waving their hand in front of the basketball system 107.The display of the backboard 110 can list the games to play and the user102 can stick their arm up to act as a mouse on the display. The depthsensing cameras can recognize through recorded image data that the user102 reached their arm up and provide the recorded image data to thecontrol unit. The control unit can associate the arm up during thisrequest that the user 102 wishes to select a game to play from the listof games. In a continuous fashion, the user 102 can move their arm, andthe depth sensing camera, the control unit, and the display, can worktogether to exhibit a mouse moving in a fashion similar to the user102's arm to enable selecting a game to play. The display can visuallyillustrate a movement of the mouse over the list of games to play thatmoves as the user 102's arm moves. In another example, each handposition of the user 102 can represent one area of the display screen.In this case, should a user 102 raise a hand straight upwards, the depthcameras, control unit, and display would associate this movement withhighlighting a button on the center top of the display screen. Shouldthe user 102 raise a right hand at a 45 degree angle, e.g., top right ofthe display screen, the depth cameras, control unit, and display screenwould associate this movement with highlighting a button on the topright corner of the display screen. This process would be similar if theuser places a right hand at a −45-degree angle from with their righthand, which would correspond to highlighting a button on the bottomright of the display screen. If the user raises their left hand at a45-degree angle, this would correspond to highlighting a button on thetop left of the display screen. If the user places their left hand at a−45 degree angle, this would correspond to highlighting a button on thebottom left of the display screen. This process is similar for otherhand positions around the display. Additionally, when the user changesfrom an open hand to a closed hand, e.g., open palm to a fist, thecontrol unit can recognize the user desires to select or enter thatselection. The selection can also be performed by way of a highlight ofa predetermined amount of time, e.g., 3 seconds.

The user 102 can select a game to play based on the arm movements byperforming a selection. The selection can be, for example, a fingerpoint, a verbal command, or some other hand gesture that indicates theuser selects a particular game. In the example of system 100, the user102 can select the shot timer game, and in response, the control unitcan initiate execution of the shot timer game. For example, the controlunit can provide to the display of the backboard a shot timer 116 and ashot counter 114, in digital format. The control unit can indicate tothe user 102 to start shooting the basketball 106 through the rim 112 assoon as the shot timer 116 begins to count down.

In some implementations, the control unit can adjust the shot counter114 as the user 102 attempts shots. For example, the user 102 canperform a shot attempt corresponding to shooting a basketball 106through rim 112. The depth sensing cameras and the sensors can generateimage data and sensor data, respectively, and provide the image data andthe sensor data to the control unit, where the control unit candetermine (i) whether the user attempted a shot and (ii) whether theshot attempt was successful or unsuccessful. Then, the control unit canupdate the shot counter 114 in a heads up display (HUD) on the displaybased on whether the user attempted the shot and whether the shotattempt was successful or unsuccessful. For example, if the user 102misses the first five shots, the control unit can display “0/5” for theshot counter on the HUD of the backboard.

Additionally, the control unit can display recorded footage from the RGBcameras include within the backboard. For example, as user 102 shootsthe basketball 106, the RGB cameras can record an area of the basketballcourt 108 and provide the recorded image data to the control unit. Thecontrol unit can receive the recorded image data and display therecorded image data in real time on the display of the backboard 110 asthe user 102 plays. In this manner, the user 102 can visually seethemselves on the backboard 110 as the user 102 plays the shot timergame. Moreover, the control unit can digitally overlay the shot timer116 and the shot counter 114 over the recorded image data on the displayof the backboard. The recorded image data from the RGB camera can fillthe entire display of the backboard 110. The shot timer 116 can bepositioned in the upper left corner of the display and the shot countcan be positioned in the bottom right corner of the display, to name anexample. Other positions are also possible.

During stage (B), the one or more sensors included in the backboard 110acquire sensor data 118 corresponding to the user 102 on the basketballcourt 108. As previously mentioned, the sensor data 118 can include datafrom the trip sensors, accelerometers, LIDAR sensors, and the motionsensors. For a particular shot attempt shown in system 100, the user102's shot attempt was successful. The trip sensors can indicate thatuser 102's shot attempt was successful, as the basketball 106 passedthrough the rim 112. For example, the backboard 110 can include an arrayof 2 or more laser trip sensors that are vertically aligned coincidingwith the hoop system. If a succession of the laser trip sensors aretripped in order from high to low, the control unit can determine thatthe basketball shot attempt was successful. Alternatively, if the lasertrip sensors are not tripped in order from high to low, then the controlunit can determine that the basketball shot attempt was unsuccessful.

The accelerometers can indicate a small vibration pattern because thepath of the basketball 106 through the rim 112 resulted in a swish, or asuccessful shot that did not hit the rim 112 or the backboard 110.Alternatively, if the basketball 106 did hit the backboard 110 or therim 112 through the successful shot attempt, the accelerometers canrecord a particular vibration pattern to indicate where the basketball106 landed. The LIDAR sensors can detect a shot attempt of user 102 andcharacteristics of the user 102's shot attempt, e.g., angle and heightof the basketball 106 during the shot attempt. The motion sensors candetect user 102 on the basketball court 108. Additionally, the motionsensors can detect movement of the user 102 and movement of thebasketball 106.

In some implementations, the backboard 110 can acquire the sensor data118 from the multiple sensors on a periodic basis. For example, thesensors can be configured to acquire sensor data 118 every 2 seconds, 5seconds, or 10 seconds. In other examples, the sensors can be configuredto acquire sensor data 118 based on the type of game being played by theuser 102. For example, if the user 102 is playing the shot timer game,then the sensors can be configured to acquire sensor data 118 on a morefrequent periodic basis to ensure all shot attempts, whether successfulor unsuccessful, are accounted for. Moreover, the user 102 can adjustthe sensitivity or frequency of the sensors acquisition through theclient device 104 if the user 102 notices the basketball system 107incorrectly counting shot attempts, and incorrectly counting makes andmisses and vice versa, until the count is accurate. In another example,if the user 102 is playing a game where the user is required to shootshots from set locations on the basketball court 108, then the sensorscan be configured to acquire sensor data 118 on a less frequent basisbecause in between each shot, the user 102 has to rebound the ball andmove to different set locations. To reduce the processing that has tooccur by the sensors and control unit during games in which a user'sgoal is to shoot less but more precisely, which can reduce the overallcomplexity and processing performed by the sensors and the control unit.

During stage (C), the one or more cameras included in the backboard 110acquire image data 122 corresponding to the user 102 on the basketballcourt 108. As previously mentioned, the image data 122 can include imagedata from the depth sensing cameras and the RGB cameras. For example,the image data 122 can include images or videos from each of thecameras. For example, as illustrated in system 100, the user 102's shotattempt was successful, as it passed through the rim 112. The depthsensing cameras can generate (i) detection data of the user 102 on thebasketball court 108, (ii) movement data of the user 102, (iii)detection data of the basketball 106 used by the user 102, (iv) trackmovement data of the basketball 106, and (v) detection data of a bodyposture of the user.

As previously described, the depth sensing cameras can generate andtrack each of the different detection and movement data of the user 102and the basketball 106. The depth sensing cameras can continuouslyrecord the image data 122 monitoring the user 102 on the basketballcourt 108 and generate this detection/movement data for each frame ofthe recorded image data 122. In some examples, the depth sensing camerascan provide this image data 122 and detection/movement in a real-timefashion to the control unit. Additionally, the RGB cameras can recordthe user 102 on the basketball court 108 and can provide the recordedimage data 122 to the control unit. The control unit can receive thesensor data 118 and the image data 122 to generate characteristics ofthe user and the shot attempt.

During stage (D), the control unit can receive the image data 122 fromthe depth sensing and RGB cameras and provide the image data 122 to atrained machine-learning model. The control unit can train amachine-learning model to perform a variety of functions. The functionscan include (i) classify or identify each user on the court 108 as aunique and persistent user, (ii) identify a user's shot, (iii) generatecharacteristics of the user on the basketball court 108, and (iv)generate characteristics of the shot attempt by the user.

For example, the trained machine-learning model can correspond to aconvolutional neural network (CNN). The control unit can train themachine-learning model using different image data of successful shotattempts and unsuccessful shot attempts from various locations ondifferent courts. The control unit can also train the machine-learningmodel using different image data of professional basketball athletes'shot attempts to understand the ideal shot attempt for assisting otherusers that interact with the basketball system 107. The control unit canprovide image data of these professional athletes dribbling abasketball, shooting the basketball from various locations on the court,and moving while dribbling the basketball. In another example, the RGBand depth sensing cameras can be used to determine body posture of theuser's shot attempt and the CNN can be trained on identified bodyposture in accordance with an ideal body posture, e.g., a professionalathlete or other individual's ideal body posture during a shot attempt,or which body posture identification provides the best results.

In some implementations, the control unit can also train themachine-learning model to identify users that interact with thebasketball system 107. For example, when a user, such as user 102, seeksto initially use the basketball system 107, the application on theclient device 104 may request the user to enter their credentials and totake a picture or selfie of themselves. This will provide the controlunit with an initial image to train the machine-learning model to detectuser 102. Then, the control unit can instruct the user 102 to play withthe basketball system 107 by taking shot attempts. The control unit canacquire image data 122 of the user 102 and train the machine-learningmodel using the newly acquired image data 122. The control unit canprovide an indication on the display that the basketball system 107 isin learning mode to learn the user 102. Then, at a later point in time,and once the machine-learning model is sufficiently trained, the controlunit can apply the trained machine-learning model to (i) identify user102 as a unique user, (ii) identify a user's shot, (iii) generatecharacteristics of the user on the basketball court 108, and (iv)generate characteristics of the shot attempt by the user.

In some implementations, the trained machine-learning model can outputthe labeled data 126. The labeled data 126 can indicate on a frame ofimage data 122 an identification of the user 102 and a location of theuser 102 relative to the backboard 110. For example, the labeled data126 can indicate that user 102 is “Bob” and an (X, Y, Z) coordinateindicating where user 102 is located on the basketball court 108relative to the basketball system 107. The labeled data can alsoindicate an angle of the basketball 106's trajectory for a particularframe of image data and an indication of whether the basketball 106passes through the rim 112. For example, the angle of the basketball106's trajectory can indicate that the basketball is at 101 degrees at aparticular point in time relative to the basketball system.Additionally, the labeled data 126 can indicate that the basketball 106did pass through the rim 112, e.g., was successful. In some examples,the labeled data 126 can include a statistic or percentage thatindicates a likelihood that user 102 is “Bob”, a likelihood where user102 appears to be located, a likelihood of an angle of the basketballtrajectory, and a likelihood of whether the basketball passes throughthe rim 112. These likelihoods can range from 0-100% or 0-1, forexample.

If multiple users 102 are interacting with the basketball system 107,then the control unit can identify and track each of the users 102simultaneously. For example, the control unit can receive sensor datafrom each of the sensors within the backboard 110 that monitorscharacteristics of each of the different users. The control unit canalso receive image data from each of the cameras within the backboard110 and provide that image data to the trained machine-learning model.In response, the machine-learning model can identify each of the userson the basketball court 108 and can track each of the users on thebasketball court 108 and their corresponding movements with and/orwithout a basketball. The labeled data 126, output by the trainedmachine-learning model, can include a frame of image data with labelsfor each of the users in the frame and characteristics corresponding toeach of the users, as described above. For example, the trained-machinelearning model can track each of the users interacting with thebasketball system 107 based on their jersey, jersey number, particularclothing types, and physical characteristics. In this case, the trainedmachine-learning model can also associate makes and misses of each shotattempt from each of the users on the basketball court.

In some implementations, the trained machine-learning model can also beused to generate real-time predictions of users' shots. For example, thetrained machine-learning model can generate real-time predictions foreach shot as the basketball travels towards the rim 112. For example,based on prior sensor data, image data, and current input data from thesensors and cameras, the basketball system 107 may initially predict theprobability of a made shot when the ball is ten feet from the rim 112,e.g., 70.0% probability of the shot being successful. The trainedmachine-learning model may adjust the probability after the basketball106 hits the rim 112, e.g., 55.0% probability of a made shot. Thetrained machine-learning model can be continuously updated/re-trainedwith the predictions and the results of the shot attempts using theimage data and the sensor data captured from the basketball system 107.

During stage (E), the control unit can analyze the received sensor data118 to determine whether the shot attempt was successful orunsuccessful. For example, the control unit can first determine from theLIDAR sensors whether a shot attempt was detected. If the control unitdetermines that a shot attempt was detected, then the control unit cananalyze the data from the trip sensors, which are located on thebackboard 110 behind the rim, to determine whether the basketball 106passed through the rim 112 or did not. If the shot did not pass throughthe rim 112, then the control unit can analyze the data provided by theaccelerometers to determine the location the basketball 106 hit relativeto the backboard based on a vibration pattern. If no vibration patternwas detected and an unsuccessful shot attempt was detected, then thecontrol unit can determine the user missed the rim 112 and the backboard110 during the unsuccessful shot attempt, e.g., named as an “air ball”.In another example, if the control unit determines that the shot did notpass through the rim, and a vibration pattern was detected, then thecontrol unit can determine whether the basketball 106 bounced off afront side of the backboard 110, a bottom side of the backboard 110, atop portion of the backboard, a side portion of the backboard, or alocation on the rim 112, or a combination of each. The control unit cananalyze the sensor data provided by the motion sensors and the LIDARsensors to determine a location of the shot attempt and a trajectory orarc of the shot attempt. If the control unit determines that the shotdid pass through the rim, the control unit can determine the vibrationpattern to indicate how the basketball passed through the rim 112, e.g.,off the backboard 110, off the rim, or a swish.

During stage (F), the control unit can perform analytics on the labeleddata 126 provided by the trained machine-learning model 124 and dataresulting from analytics of sensor data 118 during stage (E). Based onthe labeled data 126 and the analytics performed on the sensor data 118,the control unit can generate output data 130. The output data 130 caninclude a location of user 132, an identification of user 134, an angleof ball trajectory 136, a shot attempt make/miss 138, and arecommendation 140 for improvement. The control unit can generate theoutput data and store the data in a digital data type, e.g., a struct,class, or other, for example. For example, as illustrated in system 100,the location of user 132 can indicate—“12.00, 1.01, 0.00” for X, Y, Zcoordinates relative to the basketball system 107 and the basketballcourt 108 measured in feet. The identification of user 134 cancorrespond to a name or another identifier that identifies user 102,e.g., “Bob”. The angle of ball trajectory 136 can correspond to an angleover the time of flight trajectory, e.g., 5 degrees at t₉, where timecan be measured in seconds or milliseconds, for example. The shotattempt make/miss 138 can correspond to a “make”, for example. Inaddition, the control unit can generate the recommendation 140 based onthe analytics performed.

For example, the control unit can generate a recommendation to provideto the user 102 for improving the user's subsequent shot attempts basedon the user 102's current shot attempt and previous shot attempts. Therecommendations can correspond to improvements for (i) a body posture ofthe user, (ii) an arm angle of the user, (iii) a release point of thebasketball during the shot attempt, and (iv) a trajectory of thebasketball during the shot attempt. For example, the control unit cancompare the body posture of the user 102 during the shot attempt tostored image data of body posture during shot attempts by professionalathletes. The user 102 can indicate through the application of theclient device 104 that they wish to shoot like a particular professionalathlete. The control unit can display to the client device 104 and/orthe display of the backboard 110 a side-by-side image data of the user102 shooting the basketball and image data of the professional athleteshooting the basketball. In this manner, the user can try to practicetheir shooting form to match the professional athlete's shooting formshown on the display. The control unit can determine a closeness ofshooting forms by comparison and provide a percentage, for example, tothe user to indicate how close their body posture is to the professionalathlete's during the shot attempt. In this manner, the user 102 is ableto improve their body posture during the shot attempt over time.

The control unit can also analyze the arm angle of the user 102 or limbof the user 102 during the shot attempt. The arm angle can be angledoutward, angled inward, or some angle in between during the shotattempt, for example. The control unit can indicate to the user 102 toadjust their arm angle for subsequent shots to align better with aprofessional's arm angle. Alternatively, the control unit can indicateto the user 102 to adjust their arm angle to improve chances ofsubsequent shot attempts being successful. The indication can bedisplayed on the display of the backboard 110 or on a client device 104as image data, e.g., video, or another form. Similarly, the control unitcan analyze the release point of the basketball 106 during the user'sshot attempt and a trajectory of the basketball 106 during the user'sshot attempt and provide recommendations to improve those based onanother player's shot release point and trajectory, and to improve thechance a shot is successful.

In some implementations, the control unit can generate a profile foruser 102. The profile can include an identification of user 102, e.g.,user named Bob, the credentials of the user 102, one or more clientdevices associated with the user 102, e.g., client device 104, andcharacteristics of the user 102 during shot attempts. For example, thecharacteristics of the user 102 during shot attempts can include theclassification of the user and the location of the user on thebasketball court 108 relative to the backboard 110 during the shotattempt. Additionally, the characteristics of the user 102 can include awingspan, a height, hand size, and speed of that user. Thecharacteristics can also include prior shot attempts of the user 102,such as characteristics of the basketball 106's travel during the shotattempt, e.g., height, angle, trajectory point, vertical jump of user,and release point, at different time instances. The control unit canalso store in the profile whether the prior shot attempts resulted in amake or miss as well as if the shot was made, a type of shot, e.g., amake that bounced off the backboard 110, a make that bounced off the rim112, or a make that swished through the net of the basketball system107. The control unit can also store the sensor data 118, the image data122, the labeled data 126, and the output data 130 with the profile.

In some implementations, the control unit can also store gameperformance or game data associated with the game played by the user 102in the profile that corresponds to user 102. The type of games playedcan include, for example, training session modes, local head-to-headmatchups, live stream mode, and worldwide competition mode. For example,the game performance can include that represents the game played, a dateand time the game was played, a number of players in the game, anidentification of each player playing the game, a final score of thegame, makes and misses for each for each player during the game,locations on the basketball court of each of the makes and misses fromeach player, and a time at which each make and miss occurred for eachplayer in both absolute time and in relative time (relative to the startof the game). The control unit can store the game data as a tuple,struct, class, or some other computer format. If multiple users areplaying a single game, then the control unit can store game data foreach of the users in their corresponding profile for that single game.

The control unit can store the profile on the external server for theuser 102. The control unit can access and retrieve the profile for theuser 102 when the profile is updated, based on newly received sensor andimage data. For example, the control unit can identify a user profilebased on facial recognition from the received image data, user 102'sinput of username and password, iris recognition from the received imagedata, a matching fingerprint, or some other suitable authentication oridentification method. Once the control unit identifies a user profilecorresponding to the user 102, the control unit can access thecorresponding profile from the external server and update its contents.Once completed with updating the profile for user 102, the control unitcan update the external server with the revised profile.

During stage (G), the control unit can provide the output data 130 forthe user 102's review. The control unit can provide the output data 130for the user 102's review in a variety of ways. In one way, the controlunit can provide the output data 130 to the client device 104 for theuser 102 to review. In this manner, the user 102 can view the outputdata 130 for the most recent shot attempt to analyze, for example, angleof ball trajectory 136, the recommendation 140, and the location of user132. In some examples, the control unit can provide the output data 130to the display of the backboard 110 and the user can interact with thebackboard 110 via verbal or hand waving commands to view the output data130. In this manner, the user 102 can seek to improve their basketballskillset for subsequent shot attempts based on the output data 130characterized by the basketball system 107 for the most recent shotattempt.

In some implementations, the control unit can also provide the generatedprofile of the user to the client device 104 for the user 102's review.The user 102 can access the application on their client device 104 toview the profile generated for them by the control unit. In particular,the user 102 can view data from prior shot attempts to analyze how theuser's shot attempts have progressed in the profile. For example, theuser 102 can view the sensor data 118, the image data 122, the labeleddata 126, and the output data 130 for each prior shot attempt on theirclient device 104. In some examples, the control unit can display theprofile on the display of the backboard 110 and the user can interactwith the profile via verbal or hand waving commands.

In some implementations, the control unit can provide encouragementrecommendations to the user 102 as the user 102 plays the game. Forexample, if the control unit notices the user 102 has a low shot make toshot attempt ratio, the control unit can provide an audible message 146through the speakers of the backboard 110. The audible message 146 canbe heard by the user 102, e.g., saying “6 minutes to go! Keep shooting.”In another example, if the control unit notices the user 102's shotattempt was successful, the control unit can provide another audiblemessage 144 through the speakers of the backboard 110 that recites“Great Shot!” The control unit can also provide other audible messagesto the speakers of the backboard 110 or to the client device 104. Eachof these messages of encouragement can also be stored with the user102's profile.

The user 102 can continue playing the shot timer game until the timeexhibited on the shot timer 116 elapses. Afterwards, the user 102 canselect another game to play with the basketball system 107, reviewanalytics generated by the basketball system 107 on either the displayof the backboard 110 or the client device 104, or turn off thebasketball system 107. In some examples, the user can turn thebasketball system 107 via the application on the client device 104.

In some implementations, a miniature-sized backboard can be provided insystem 100. The miniature-sized backboard can include similar componentsand functionality compared to those described with respect to backboard110 of system 100. The miniature-sized backboard may not include a pole113, but instead, may be placed in various locations within a home, acorporate building, or other areas. For example, a user may be able tomount the miniature-sized backboard on a wall in a home or hang theminiature-sized backboard over a particular side of a door or a closet.The miniature-sized backboard may include multiple anchor points on arear side of the backboard for being attached to various attachmentpoints. These anchor points can be attached by, for example, rope,hooks, screws, fasteners, and other attachments. The miniature-sizedbackboard may include a rim with a net connected to its front side. Inother examples, a user may be able to mount the miniature-sizedbackboard on a surface in a garage, basement, or, other areas within ahome or corporate property. In other examples, the miniature-sizedbackboard may include a small pole with a base for support that can beplaced in any location and a user can shoot a smaller size basketball atits rim. These locations can include, for example, bedrooms, basements,kitchens, office spaces, living rooms, and other places.

In some implementations, the miniature-sized backboard can include fewercomponents than the backboard 110 while maintaining similarfunctionality. The number of sensors within the miniature-sizedbackboard may be reduced because the size of the miniature-sizedbackboard can be substantially smaller than the backboard 110. Forexample, the miniature-sized backboard may include two depth-sensingcameras, instead of three to eight, with overlapping fields of view forviewing the area where a user is shooting a basketball. The rim of theminiature-sized backboard is also substantially smaller, than the rim ofthe backboard 110. Due to the rim size of the miniature-sized backboard,the basketball used for the miniature-sized backboard is alsosubstantially smaller.

The miniature-sized backboard can include a similar number of games toplay as the backboard 110 and include an ability to connect with otherminiature-sized backboards located in other geographic regions, over anetwork. In some cases, the miniature-sized backboard can include anability to play basketball games with users at other regular sizedbackboards, e.g., such as backboard 110, in different geographic regionsover a network. A user can interact with the miniature-sized backboardby communicating with the miniature-sized backboard verbally, by way ofhand gestures, or by interacting with a smart application of theirclient device that communicates with the miniature-sized backboard,similar to how a user would interact with backboard 110.

FIG. 1B is a block diagram that illustrates an example of a system 101of a backboard. The system 101 illustrates, in detail, a structure ofthe backboard 110. This backboard 110 shown in system 101 is similar tothe backboard 110 illustrated in system 100.

The system 101 includes the backboard 110, a network 150, a clientdevice 104, and an external server 170. The backboard 110 includes afront layer 164, a second layer 166, and a display screen 168. The frontlayer 164, the second layer 166, and the display screen 168 arepositioned in a longitudinal, layered, or stacked manner, but could bearranged in any suitable configuration. The system 101 includesfasteners 158A and 158B that can hold together in position the variouslayers of the backboard 110. In some cases, the number of layers of thebackboard 110 can be less than three layers, as will be furtherillustrated and described below. The backboard 110 is IP67 waterproofregulated and can weigh near 300 pounds, for example.

The fasteners 158A and 158B can be shock-absorbing fasteners that couplethe different layers of the backboard 110. The fasteners 158A and 158Bcan be any suitable devices that absorb and/or minimize transfer ofshock forces and/or vibration from the rim 112 and/or the front layer164 to the display screen 168. In one example, the fasteners 158A and158B can include one or more brackets and a spring, screws, rivets,bolts, or other suitable mechanisms. In another example, the fasteners158A and 158B can include one or more adhesives, sealants, or othersuitable mechanisms.

In some implementations, the front layer 164 of the backboard 110 canprotect the components within the backboard 110. For example, the frontlayer 164 can be tempered glass, covered with a protective coating witha translucent or transparent material, such as anti-reflective coating,or both. The front layer 164 can also be configured to enable a user,such as user 102, interacting with the backboard 110 to view the displayscreen 168 in a third layer of the backboard 110. The front layer 164can also be connected to the rim 112 at the bottom portion of the frontlayer 164. The second layer 166 of the backboard 110 can include a smallregion between the front layer 164 and the display screen 168 thatincludes the one or more components of the backboard 110.

For example, the second layer 166 can include the camera sensing system156, the streaming camera 157, the sensors 154, and the speakers 160Aand 160B. The camera sensing system 156 can include one or more depthsensing cameras that view the basketball court 108 and are positioned ata top portion and in the center of the second layer 166. The streamingcamera 157 can include one or more RGB cameras that view the basketballcourt 108 and can be positioned below the camera sensing system 156. Insome examples, the second layer 166 can be a compressible material suchas rubber or foam padding.

The sensors 154 can positioned in a variety of locations within thesecond layer. For example, the LIDAR can be positioned within the camerasensing system 156. The motion sensors can be positioned within thecamera sensing system 156. The trip sensors 162 can be laser tripsensors that are positioned at the bottom of backboard 110 on the frontlayer 164 behind the rim 112 in a vertical manner. The speakers 160A and160B can be positioned within the second layer 166 of the backboard 110.The speakers 160A are capable of playing music and/or providing audiblefeedback to the user 102. The accelerometers can be positioned withinthe sensors 154 of the second layer 166. The microphone(s) can bepositioned within the sensors 154 of the second layer 166.

As previously mentioned, the sensors 154, including the trip sensors162, can sense the player, the ball, and/or forces applied to thebasketball system 107. The sensors 154 generate data that is processedand analyzed by the control unit 148. Each of the sensors 154 can beconfigured in a particular manner to properly detect, acquire, andgenerate sensor data for the user playing basketball. The sensors 154can be coupled to the front layer 164, the display screen 168, the pole113, or the second layer 166. In some examples, the sensors 154 can alsobe remote or disconnected from the basketball system 107. For example,the sensors 154 can be coupled to existing court lighting systems and/orauxiliary support structures along the sides or ends of the basketballcourt 108.

The control unit 148 can be positioned behind the display screen 168 ofthe backboard 110. Each of the sensors, cameras, speakers, andmicrophones can connect to the control unit 148 in a bi-directionalmanner. The control unit 148 can communicate with the external server170 and the client device 104 over the network 150. The network 150 canbe, for example, the Internet, Wi-Fi, Bluetooth, Ethernet, or some otherform of wireless or wired connection.

The display screen 168 can display the shot timer 116 and the shotcounter 114. The user 102 can see the shot timer 116 and the shotcounter 114 through the front layer 164 and the second layer 166. Theuser 102 can also see image data displayed on the display screen 168 bythe control unit, e.g., video footage of user 102 playing basketball inreal time or video footage of another user playing basketball fromanother connected control unit. The control unit can overlay the shottimer 116 and the shot counter 114 digitally over video footage providedto the display screen 168. Moreover, the square of the backboard 110 canbe generated and displayed by the display screen 168.

The display screen 168 can visually display information, indicia,videos, and/or pictures. The display screen 168 can have a brightness of1000 or more NITS. The display screen 168 can be any suitable displaypanel such as, for example, an LED or LCD display screen. For example,the display screen 168 can be a smart TV. The display screen 168 canalso be a screen for projection of information, indicia, videos, and/orpictures. For example, a projector may project information to thedisplay screen. In another example, the display screen 168 can include ashort throw projector for providing information, indicia, videos, and/orpictures as the display. The client device can stream any image data tothe display screen 168 for a user's view.

The system 101 also includes the power source 152. As previouslymentioned, the power source 152 can power the one or more componentswithin the second layer 166 of the backboard 110, the display within thebackboard 110, and the control unit. The power source 152 can include,for example, a power plug that is inserted into an outlet, a solarenergy panel coupled to the basketball system 107, or a rechargeablebattery pack attached or coupled to the basketball system 107. The powersource 152 can be located on a rear side of the display screen 168.

FIG. 1C is another block diagram that illustrates an example of a system103 of a backboard. The system 103 includes similar components to thebackboard 110 illustrated in system 101. However, the backboard 110 insystem 103 includes two layers, e.g., front layer 164 and the displayscreen 167. The different components of the backboard 110 can bepositioned and configured to operate in three layers and two layers, asillustrated and described in system 101 and 103, respectively.

In system 103, the front layer 164 and the display screen 168 can bespaced apart a predetermined amount to reduce the shocks during a user'sshot attempt. For example, the front layer 164 and the display screen168 can be spaced apart by 0.5-1.0 inches so that when the basketballstrikes the front layer 164, the front layer 164 will not contact withthe display screen 168 as the front layer 164 vibrates or flexes.

In another example, the display screen 168 tightly abuts the front layer164. In this example, the front layer 164 is formed from a generallyrigid plexiglass or other suitable material and there is minimal or nospace between the front layer 164 and the display screen 168. As such,the front layer 164 does not move relative the display screen 168 whenthe basketball contacts the front layer 164. Thus, the display screen168 is not damaged when the basketball contacts the front layer 164. Inthis example, the pole 113 or the support member is embedded in theground and the connection between the pole 113 and the display screen168 and/or the front layer 164 is rigid such that the forces applied bythe basketball to the front layer 164 are transmitted to the groundthereby minimizing vibrations and rattling of the display screen 168.

FIG. 2A is a block diagram that illustrates an example of videoanalytics 200 for detecting a basketball passing through a rim. Inparticular, the video analytics 200 illustrate processes performed bythe control unit when determining that a shot attempt was successful,e.g., the basketball passed through the rim of the backboard. The videoanalytics 200 illustrates similar components to systems 100, 101, and103, and the similar components do not need to be described again here.

The video analytics 200 includes a basketball 202 shot by a user, thebackboard 204, and virtual regions. The virtual regions include avirtual inner cone 208 and a virtual outer cone 210. The control unitcan apply the virtual inner cone 208 and the virtual outer cone 210 tothe received image data from the depth sensing cameras.

The virtual inner cone 208 and the virtual outer cone 210 can includeone or more characteristics that are placed above the rim. For example,the virtual inner cone 208 can include an inner radius 206 that matchesto a radius of the rim. The virtual inner cone 208 includes a base thatcoincides with the rim. The virtual inner cone 208 also has a particularheight that extends from the rim. For example, the height of the virtualinner cone 208 can be 1 foot. Similarly, the virtual outer cone 210 caninclude an outer radius 212 that includes the radius of the rim and adistance greater than the radius of the rim. For example, the outerradius 212 can correspond to 2.5 feet or another distance. The virtualouter cone 210 can include an extrusion the size of the virtual innercone 208 so that the two virtual cones do not overlap one another. Thevirtual outer cone 210 also has a particular height that extends fromthe rim. For example, the height of the virtual outer cone 210 can be 4feet or another height. The control unit can utilize the characteristicsof the virtual cones displaced over the rim to determine whether a shotattempt resulted in a successful or unsuccessful shot.

For example, as illustrated in video analytics 200, the user performs ashot attempt by shooting the basketball 202 toward the backboard 204.The control unit can deem a shot attempt was successful when (i) thebasketball 202 enters the virtual outer cone 210, then (ii) thebasketball 202 exits the virtual outer cone 210, then (iii) thebasketball 202 enters the virtual inner cone 208, and finally, (iv) thebasketball 202 only exits the virtual inner cone 208 through the base ofthe virtual inner cone 208, e.g., into the rim of the basketball system.At this point, the control unit can deem the shot attempt wassuccessful, as the basketball 202 passed through the rim of thebasketball system. The control unit can perform these video analytics todetermine if a shot attempt was successful during the analytics 128 ofsystem 100.

FIG. 2B is a block diagram that illustrates an example of videoanalytics 201 for detecting a basketball not passing through a rim. Thevideo analytics 201 illustrate similar components to video analytics200, which will not be described again here. The video analytics 201 canillustrate the processes performed by the control unit when determiningthat a shot attempt was unsuccessful, e.g., the basketball did not passthrough the rim of the backboard. Additionally, the video analytics 201illustrate similar components to system 100, 101, and 102, and thesimilar components do not need to be described again.

As illustrated in video analytics 201, the user performs a shot attemptby shooting the basketball 202 toward the backboard 204. The controlunit can deem a shot attempt was unsuccessful in a variety of manners.In one example, if the basketball 202 does not enter either the virtualouter cone 210 or the virtual inner cone 208, then the control unit candeem the shot attempt unsuccessful. In another example, the basketball202 may enter the virtual outer cone 210 and then exits out of thevirtual outer cone 210 without entering the virtual inner cone 208, thenthe control unit can deem the shot attempt unsuccessful. In anotherexample, the basketball 202 may enter the virtual outer cone 210, thenthe basketball 202 exists the virtual outer cone 210, and finally, thebasketball 202 does not exit the virtual inner cone 208 through thebase, then the control unit deems the shot attempt unsuccessful. Thecontrol unit can perform these video analytics to determine if a shotattempt was unsuccessful during the analytics 128 of system 100.

FIG. 3 is a block diagram that illustrates an example of a system 300 oftwo users playing basketball with connected basketball systems. Aspreviously mentioned, the basketball system, such as basketball system107 of FIG. 1A, enables users to play various basketball games. Thevarious basketball games can include, for example, training sessionmode, head-to-head matchup mode, worldwide competition mode, and livestream mode, to name a few. The system 300 illustrates an example of ahead-to-head matchup mode between two different basketball systems.

System 300 illustrates a basketball system 302-1 and 302-N taking partin a head-to-head competition. The basketball system 302-1 and thebasketball system 302-N communicate with one another via theirrespective control units over a network 301. The network 301 can be, forexample, the Internet, Wi-Fi, or another form of connection.

At the basketball system 302-1, a user 304 can register with thebasketball system 302-1 with their client device 314 to play ahead-to-head game. The user 304 can play on the court 310 using thebasketball 312. Similarly, at the basketball system 302-N, another user306 can register with the basketball system 302-N with their clientdevice 316 to play a head-to-head game. The user 306 can play on thecourt 308 using the basketball 315.

In some implementations, the user 304 can transmit a request to thebasketball system 302-1 to play in the head-to-head competition. Theuser 304 can provide an indication or request through an application onthe client device 314 to play in a head-to-head competition game to thebasketball system 302-1. The indication or request can also indicatewhether the user 304 desires to play against a friend or a random match.If the user 304 selects a friend, the basketball system 302-1 can seekto send out a request to the basketball system associated with thefriend, e.g., basketball system 302-N. Alternatively, if the user 304selects a random match, then the basketball system 302-1 can retrieveeach of the other basketball systems that are currently online and arecurrently listed in a queue, are also requesting to perform ahead-to-head competition, and can randomly select one of thosebasketball systems in the queue to play against the user 304 from thebasketball system 302-1. Alternatively, the basketball system 302-1 canselect the top basketball system in the queue to play against the user304.

Similarly, the user 306 can provide an indication or request through anapplication on the client device 316 to play in a head-to-headcompetition game to the basketball system 302-N. The basketball system302-N can determine whether the user 306 requested for a friend match ora random matchup. Based on the request, the basketball system 302-N cancommunicate out to another basketball system to setup the head-to-headcompetition. For example, the control unit of the basketball system302-1 can transmit a request 318 to the control unit of the basketballsystem 302-N. The control unit of basketball system 302-N can setup thehead-to-head competition in response to receiving the request 318 andresponding to the request 318 with an acceptance.

The basketball system 302-1 and the basketball system 302-N can belocated in different geographic regions. For example, the basketballsystem 302-1 can be located in a gymnasium in New York City, N.Y., andthe basketball system 302-N can be located in a gymnasium in Geneva,Switzerland. In other examples, the basketball system 302-1 can belocated at one house, and the basketball system 302-N can be located ata neighbor's house. In other examples, the basketball system 302-1 andthe basketball system 302-N can be located at opposite ends of the samebasketball court. As long as the basketball systems can connect to anetwork connection, e.g., the Internet, then the basketball systems canconnect to one another. In other implementations, the basketball systemsdo not need an internet connection to communicate with one another.Rather, the basketball systems can communicate over a cellularconnection that has a particular throughput and consistent networkconnectivity.

In response to the basketball systems 302-1 and 302-N accepting ahead-to-head competition, a head-to-head module executes at bothbasketball systems. For example, the backboard of basketball system302-1 displays a recorded live video stream of user 306 playingbasketball. Similarly, the backboard of basketball system 302-N displaysa recorded live video stream of user 304 playing basketball. One or moreRGB cameras at the basketball system 302-1 records image data of thecourt 310 where user 304 plays, and provides the recorded image data tothe control unit of basketball system 302-1. The control unit of thebasketball system 302-1 transmits the recorded image data over network301 to the control unit of basketball system 302-N, to be displayed onthe display screen of the basketball system 302-N. Similarly, one ormore RGB cameras at the basketball system 302-N records image data ofthe court 308 where user 306 plays, and provides the recorded image datato the control unit of basketball system 302-N. The control unit of thebasketball system 302-N transmits the recorded image data over network301 to the control unit of basketball system 302-1, to be displayed onthe display screen of the basketball system 302-1. This process occurssimultaneously so user 304 can see user 306 playing on backboard ofbasketball system 302-1 and so user 306 can see user 304 playing onbackboard of basketball system 302-N.

Additionally, both users can speak one another during the head-to-headcompetition. For example, user 306 can speak “I'm beating you John!” Themicrophone of the basketball system 302-N can pick up the audiblemessage, provide the audible message to the control unit, and thecontrol unit can transmit the audible message to the control unit of thebasketball system 302-1. There, the control unit of the basketballsystem 302-1 can play the audible message through the speakers of thebasketball system 302-1, where user 304 can hear the message “I'mbeating you John!”

User 304 can respond by speaking a verbal message “Not for long!” Themicrophone of the basketball system 302-1 can pick up the verbal messageand transmit the message to the control unit of the basketball system302-1. The control unit of the basketball system 302-1 can then transmitthe verbal message to the control unit of the basketball system 302-N,where the control unit of the basketball system 302-N receives theverbal message and provides the verbal message to be displayed by thespeakers of the basketball system 302-N, e.g., speakers playing “Not forlong!”

When the gameplay for the head-to-head competition begins, either with a“3-point contest”, “a free throw contest,” or “most shots in under apredetermined time”, basketball systems 302-1 and basketball systems302-N will start a countdown that is visually and/or audible played,e.g., “3, 2, 1, GO!” Both users 304 and 306 begin shooting theirrespective basketballs 312 and 315 towards their basketball system 302-1and basketball system 302-N, respectively. Both basketball systems 302-1and 302-N can use their respective cameras and sensors to monitor eachusers' shots, shot attempts, using processes described above. Thedisplay screen of basketball system 302-1 can display both the ratio ofshots made to shot attempts for user 304, e.g., 6/20, and the ratio ofshots made to shot attempts for user 306, e.g., 5/10. Similarly, thedisplay screen of basketball system 302-N can display similar ratios.The control unit of both can track the shots made and shot attempts andprovide this information, along the image data recorded by the RGBcameras, to the other control unit. In this manner, the control unit ofbasketball system 302-N can display the ratio of shots made to shotattempts for user 304 on the display screen of basketball system 302-Nand the control unit of basketball system 302-1 can display the ratio ofshots made to shot attempts for user 306 on the display screen ofbasketball system 302-1. Any update for shot attempts and shots made byboth users is provided to both control units over the network 301 sotheir displays can update respectively.

The display screens of both basketball systems 302-1 and 302-N maydisplay a timer if this is a timed competition. The timer between bothdisplay screens will be synced to ensure both users have the same amountof time for the head-to-head competition. Once the timer elapses, thewinner with the highest ratio of shots made to shot attempts is deemedthe winner of the competition.

Similar to stage (G) of system 100, the control unit for the basketballsystem 302-1 can provide output data for each attempted shot to theclient device 314 for user 304's review. The control unit for thebasketball system 302-N can provide output data for each attempted shotto the client device 316 for user 306's review. The control unit for thebasketball system 302-N can also provide the output data to the controlunit of basketball system 302-1 and/or client device 314 for user 304 toreview their opponents results. The control unit for the basketballsystem 302-1 can also provide the output data to the control unit ofbasketball system 302-N and/or client device 316 for user 306 to reviewtheir opponents' results. Similarly, both control units can associateimage data, sensor data, and the output data for each shot attempt withthe profile of the respective users. For example, the control unit ofbasketball system 302-1 can store the image data, the sensor data, andthe output data for each shot attempt by user 304 in their profile. Thecontrol unit of basketball system 302-N can do the same storageprocedure for user 306 and associated profile.

A similar process can be performed as described above with respect tosystem 300, should user 306 and user 304 play basketball at the samebasketball system, e.g., basketball system 302-1. In this case, thecomponents of the basketball system 302-1 can monitor both the user 304and corresponding basketball 312 and user 306 and correspondingbasketball 315. The control unit of the basketball system 302-1 candisplay the ratio of shots made to shot attempts for both users as theyperform shot attempts on the display screen of the basketball system302-1. In this example, the display screen of the basketball system302-1 can display a video recorded from the RGB camera of the basketballsystem 302-1 of both users playing on the basketball court 310 as theyplay. The ratio of shots made to shot attempts for both users can beoverlaid on the display screen over the video recorded from the RGBcamera. In this case, both users can see their respective scores, e.g.,respective ratios, and the recorded video of both user's gameplay.

In some implementations, these game plays can rank users that interactwith basketball systems around the world. For example, the outcome ofthe head-to-head competition can result in user 304 winning and user 306losing. As such, user 304's rank will move upwards and user 306's rankwill move downwards amongst a list of other users. Users can seek toplay games against other users using this ranking of players by way oftheir respective client device or basketball systems.

In another gameplay mode, livestream video highlights or real timebasketball can be streamed to a basketball system. For example, whileuser 304 performs various shot attempts with basketball 312, thebasketball system 302-1 can display basketball highlights fromcollegiate or professional basketball games. These games can include NBAgames, college games, and high school games.

In another gameplay mode, the basketball systems can enable worldwidecompetition mode. In worldwide competition mode, two basketball systemsare connected and play a game similar to the head-to-head matchup mode.Additionally, the worldwide competition mode enables two users to wagermoney on the head-to-head matchup. The wagered money can be managed to afinancial account of the winner and the money can be used to purchaseadditional paid-features of the system. The paid-features of the systemcan include paying for premium live-remote one on one training, payingfor special celebrity group coaching events, and other exclusive events.

In another game play mode, the basketball systems can enable users toplay in a training mode. The user, such as user 304, can select thetraining mode when the user seeks to improve his or her basketballskillset. For example, when the training mode starts, the user canselect a series of inputs from either the user's client device or thebackboard of the basketball system. The series of inputs can include,for example, “work on shooting,” “ball handling,” “foot speed,” “catchand shoot,” among other practice modes. The user can select which inputthey wish to practice or multiple inputs to practice. Then, the user isinstructed to start practicing based on instructions provided by thetraining module. The control unit of the basketball system 302-1 cansense shot parameters, e.g., shot attempts, shot makes, shot misses,dribbling, body posture, ball movement, and body movement to name a fewexamples, based on data provided by the sensors and cameras during thetraining module. In response, the control unit can generate output data,e.g., output data 130, for each attempted action, e.g., shot, dribble,ball movement, and user movement, and can store the output data for eachattempted action associated with the user's profile.

The training module can end when a particular event occurs for thetraining module, e.g., the user makes 50 free throw shots, the usermakes 50 three point shots, or the user learns how to dribble thebasketball through their legs. In response to the training moduleending, the control unit can provide the output data to a display screenof the basketball system and/or to the client device of the user. Theoutput data can include workouts and other recommendations to help theuser improve their basketball skillset. If the user comes back later toperform a similar training module, the control unit can determinewhether the user has improved or declined ability from the priortraining module or from prior training modules. The control unit canthen indicate this information to the user via the client device or thedisplay screen, e.g., displaying “You have improved your shot percentageby 20% in 5 minutes since the last training session.”

FIG. 4 is a block diagram that illustrates an example computing system400 of a backboard. The computing system 400 can be illustrative of abackboard 110, backboard 204, basketball system 302-1, and basketballsystem 302-N. As previously mentioned, the basketball system includes acontrol unit 402 that receives the data from the sensors 420 and thecameras 418 and the control unit 402 can process and/or analyze the datafrom both sensors 420 and cameras 418. The control unit 402 includes amemory 404, a processor 406, and a Network Interface Card (NIC) 408, andis connected to other components of the computing system 400 via wiredor wireless communication links.

The control unit 402 can receive data from other inputs such as a userinput device 422. In one example, the user input device 422 is apersonal smartphone or personal computer of the user. The user inputdevice 422 can be connected to the control unit 402 via a wiredconnection through the NIC 408, e.g., the user input device 422connected to the basketball system with a USB connector, an HDMIconnector or a wireless connection. In one example, the wirelessconnection may be a Bluetooth connection between the user input device422 and a transceiver connected to the basketball system and the controlunit. In another example, the wireless connection may be a Wi-Fi networkor cellular data network that connects to the internet or cloud 424. Inthis example, the internet 424 can provide wireless access/connectionbetween the control unit 402 and the user input device 422, e.g., apersonal smart phone. In certain examples, software stored on the memoryanalyzes the input data and generates output data that is communicatedto the player via the user input device 422 and/or the display panel412. The control unit 402 can also transmit data to and/or receive datafrom a software module or mobile application of the user input device422. For instance, the mobile application of the user input device 422can display data from the control unit 402 and/or provide entry fieldsfor the user to input data which is sent to the control unit 402 viawired or wireless connection.

The power source 410 can power the components within the basketballsystem, as previously described. The control unit 402 can provideaudible messages and music to the speakers 414. The control unit 402 canreceive audible message and sounds from the microphone 416.

As noted above, the control unit 402 analyzes the input data to generateoutput data. The processor 406 processes the input data and usessoftware programs or modules stored on the memory 404. Different modulescan use the output data such that the user can use the basketball systemin different ways. For example, the user can stream personalizedtraining sessions, play head-to-head basketball competitions againstother player in remote locations, e.g., other basketball courts or localbasketball courts. The output data can also be stored on the memory 404,the user input device 422, and/or a cloud storage system 424 such thatperformance and other metrics can be tracked over time as the userinteracts with the basketball system. Accordingly, the user can accessoutput data sets to understand how their basketball skill developmentand performance trends, e.g., number of missed shots, analyze or depictshot arcs relative to the rim 112, and other characteristics. Thecontrol unit 402 can also display performance data of the user to thedisplay panel 412.

FIG. 5 is a flow diagram that illustrates an example of a process 500for generating characteristics of a user playing basketball. The process500 can be performed by the backboard 110 of the basketball system 107and backboard 204 of systems 200 and 201.

The backboard can receive sensor data from a plurality of sensors andimage data from one or more imaging devices regarding a shot attempt ofa user, the plurality of sensors and the one or more imaging devicescoupled to the backboard (502). For example, a user can request to playa basketball game with the backboard. The user can authenticate withtheir client device and/or backboard using an authentication means, andcan select a basketball game to play. For example, the basketball gamescan include a training session mode, local head-to-head matchups, livestream mode, and worldwide competition mode. Once the user has selectedwhich basketball game to play via their client device or backboard, acontrol unit of the backboard can indicate to the user to start shootinga basketball towards a rim of the backboard. This may occur when a shottimer begins to count down or some other indication to start theselected basketball game.

As user plays the game, e.g., moves with a basketball or performs a shotattempt, the cameras and the sensors can generate image data and sensordata, respectively, and provide the image data and the sensor data tothe control unit, where the control unit can determine (i) whether theuser attempted a shot and (ii) whether the shot attempt was successfulor unsuccessful. Each of the sensors and cameras can be configured toperform different and/or similar functions. For example, the LIDARsensors can be configured to detect the shot attempt of the user and oneor both of an angle and a height of the basketball from the shotattempt. The motion sensors can be configured to detect one or moreusers on a court within a proximity to the backboard. The trip sensorscan be configured to determine the shot attempt was successful. Theaccelerometers can be configured to determine an indication of alocation of the basketball relative to the backboard based onaccelerometer data and a vibration pattern during a shot attempt.

Moreover, the backboard can include one or more cameras. The cameras caninclude one or more depth sensing cameras and/or one or more RGBcameras. Each of the cameras can be configured to perform differentand/or similar functions. For example, the depth sensing cameras can beconfigured to perform one or more of the following: (i) detect the useron a court, (ii) track movements of the user, (iii) detect thebasketball used by the user for the shot attempt, (iv) track movementsof the basketball, (v) detect a body posture of a user. The one or moreRGB cameras can be configured to perform one or more of the following:(i) record image data of a field of view of the court and (ii) recordimage data of an area underneath the backboard to detect when the shotattempt of the user corresponds to a layup.

The backboard can include multiple layers, each layer housing adifferent component. A front layer of the backboard can include atransparent coating for protection of the components within thebackboard. For example, the front layer can include tempered glass that(i) protects the components within the backboard 110 and (ii) allows auser to see a display screen behind the front layer. The backboard canalso include a second layer, seated behind the front layer. The secondlayer can include one or more components, e.g., sensors and cameras, formonitoring and generating data, e.g., sensor and image data, associatedwith user(s) on the court. The backboard can also include a third layerthat houses a display screen. In some implementations, the second layerof the backboard can include the display screen for providing feedbackto the one or more users playing basketball. The rim can be coupled tothe protective layer of the backboard or the front layer of thebackboard.

The backboard can also include a control unit, which houses the CPU andGPU for processing sensor and image data and providing output data tothe display screen, one or more speakers, and/or a client device of theone or more users. The one or more speakers can provide audible outputto the users corresponding to the output data.

The backboard can determine whether the shot attempt was successfulbased on the received sensor data (504). In some implementations, theuser's shot attempt with the basketball may result in an unsuccessfulattempt. In the unsuccessful attempt, the basketball may bounce off therim, the backboard, or miss the backboard and components entirely. Thebackboard may further include one or more trip sensors that areconfigured to determine whether the basketball passes through the rimfrom the shot attempt.

In other implementations, the user's shot attempt with the basketballmay result in a successful attempt. In the successful attempt, thebasketball may pass through the rim from the shot attempt. Thebasketball may pass through the rim by bouncing off the backboard, maypass through the rim without bouncing off the backboard or the rim, ormay pass through the rim by first bouncing off the rim and then passingthrough the rim.

The control unit of the backboard can indicate to the sensors to acquiresensor data on a periodic basis. In other examples, the control unit ofthe backboard can indicate to the sensor to acquire sensor data based onthe type of basketball game being played. The control unit can alsoadjust a sensitivity of the sensors to improve detection of shotattempts, successful shot attempts, and unsuccessful shot attempts.

The backboard can generate analytics that indicate (i) characteristicsof the user, (ii) characteristics of the shot attempt, (iii)recommendations for improving the shot attempt for subsequent shotattempts based on the received image data and whether the shot attemptwas successful, and (iv) game performance (506). The cameras within thebackboard can acquire image data from the depth sensing cameras and theRGB cameras. For example, the image data can include images or videos ofthe user(s) playing basketball on the court. The depth sensing cameras,for example, can generate (i) detection data of the user(s) on thebasketball court, (ii) movement data of the user, (iii) detection dataof the basketball used by the user, (iv) track movement data of thebasketball, and (v) detection data of a body posture of the user. Thedepth sensing cameras can generate and track each of the differentdetection and movement data of the user and the basketball continuouslyand over a period of time.

The control unit can receive the image data from the depth sensing andRGB cameras and provide the image data to a trained machine-learningmodel. The machine-learning model can generate data that (i) classify oridentify each user on the court as a unique and persistent user, (ii)identify a user's shot, (iii) generate characteristics of the user onthe basketball court, and (iv) generate characteristics of the shotattempt by the user. The trained machine-learning model can identify andtrack each of the users on the court simultaneously. The characteristicsof the user can include an identification of the user and a location ofthe user on the court relative to the backboard. The characteristics ofthe shot attempt can include an angle of the basketball trajectoryduring a shot attempt and an indication of whether the basketball passesthrough the rim. Moreover, the control unit can associate a useridentified by the trained machine-learning model with a stored userprofile.

Once identified, the control unit can update the stored user profile ofthe identified user with newly generated characteristics for that userincluding characteristics that describe the shot attempt of that user.More specifically, the control unit can determine resultant data basedon the received sensor data that includes one or more of (i) whether theshot attempt resulted in the basketball passing through the rim, (ii)whether the shot attempt resulted in the basketball bouncing off a frontside of the backboard and not passing through the rim, (iii) whether theshot attempt resulted in the basketball bouncing off the rim and notpassing through the rim, (iv) location of the shot attempt of the user,(v) an arc of the basketball during the shot attempt by the user. Thecontrol unit can store the resultant data with the characteristics ofthe user, the characteristics of the shot attempt output from thetrained machine learning model, the received sensor data, and thereceived image data in the corresponding profile. The control unit canthen provide the updated profile to the external server, where aplurality of profiles are stored, each profile corresponding to adifferent user.

In some implementations, the control unit can use the image data todetermine whether a shot attempt was successful or unsuccessful. Forexample, the control unit can apply a virtual inner cone and a virtualouter cone to the received image data from the depth sensing cameras.The virtual inner cone can include an inner radius that matches to aradius of the rim, can include a base that coincides with the rim, andcan include a height that extends from the rim. The virtual outer conecan include an outer radius that extends a distance away from the rim,can include an extrusion the size of the virtual inner cone so the twocones do not overlap, and can include a height that extends from therim, and is taller than the height for the virtual inner cone. Based onthese cones, the control unit can determine whether a shot attemptresulted in a successful or unsuccessful shot. For example, if thebasketball passes through each cone and exits the base of the virtualinner cone, then the control unit can determine that the shot attemptwas successful. Alternatively, if the basketball does not pass throughboth of these cones or does not exit the base of the virtual inner cone,then the control unit can determine that the shot attempt wasunsuccessful.

In some implementations, the control unit can use the data generatedfrom trained machine-learning model and the received data to generaterecommendations for the user. For example, the recommendations caninclude improvements for the user for subsequent shot attempts. Therecommendations can focus one or more of (i) a body posture, (ii) an armangle, (iii) a release point of the basketball, and (iv) a trajectory ofthe basketball, during subsequent shot attempts for the user. Therecommendations can also be stored with the profile for the specificidentified user.

In some implementations, the control unit can store game data or gameperformance associated with the game played by the user in a profile ofthe user. The type of games played can include, for example, trainingsession modes, local head-to-head matchups, live stream mode, andworldwide competition mode. For example, the game performance caninclude that represents the game played, a date and time the game wasplayed, a number of players in the game, an identification of eachplayer playing the game, a final score of the game, makes and misses foreach for each player during the game, locations on the basketball courtof each of the makes and misses from each player, and a time at whicheach make and miss occurred for each player in both absolute time and inrelative time (relative to the start of the game). The control unit canstore the game data as a tuple, struct, class, or some other computerformat. If multiple users are playing a single game, then the controlunit can store game data for each of the users in their correspondingprofile for that single game.

The backboard can provide output data representing the analytics to oneor more of (i) the speaker, (ii) the display screen, and (iii) a clientdevice of the user (508). For example, the control unit of the backboardcan provide the output data that includes the generated recommendationsto the display screen of the backboard. The output data can alsocorrespond to an audible voice output, which can be provided to aspeaker of the backboard to communicate the generated recommendations tothe user. In another example, the control unit can provide the generatedrecommendations to the client device of the user over a network. Thecontrol unit can also provide media from the RGB cameras to the displayscreen of the backboard. In other examples, the control unit can receivemedia from another control unit associated with another backboard anddisplay the received media from the other control unit on the backboard,such as during specific game types.

In some examples, the user can review their profile that includes thegenerated recommendations and the determined analytics. The user canreview their corresponding profile on their client device and/or on thedisplay screen of the backboard. The control unit can receive anindication from the user to access the corresponding profile and thecontrol unit can identify the corresponding profile of the user on theuser. The control unit can determine which user profile to access basedon authentication and identification of the user. Then, the control unitcan provide the corresponding profile and its contents to the clientdevice of the user and/or to the display screen of the backboard. Theuser can review analytics on previous shot attempts, such as recordedfootage, recommendations, comparisons between their shot attempt andprofessional athlete shot attempts, data associated with basketballgames played by the user, e.g., a type of game played, shot attempts,makes/misses, and opponent shot attempts, makes/misses, time stampedinformation, and other basketball information associated with the userinteracting with the basketball system.

In general, the terms device, system, computing entity, entity, and/orsimilar words used herein interchangeably may refer to, for example, oneor more computers, computing entities, desktops, mobile phones, tablets,phablets, notebooks, laptops, distributed systems, gaming consoles,e.g., Xbox, Play Station, Wii, watches, glasses, key fobs, radiofrequency identification (RFID) tags, ear pieces, scanners, cameras,wristbands, kiosks, input terminals, servers or server networks, blades,gateways, switches, processing devices, processing entities, set-topboxes, relays, routers, network access points, base stations, the like,and/or any combination of devices or entities adapted to perform thefunctions, operations, and/or processes described herein. Suchfunctions, operations, and/or processes may include, for example,transmitting, receiving, retrieving, operating on, processing,displaying, storing, determining, creating, generating, monitoring,evaluating, comparing, and/or similar terms used herein interchangeably.In various embodiments, these functions, operations, and/or processescan be performed on data, content, information, and/or similar termsused herein interchangeably. Furthermore, in embodiments of the presentinvention, client device 104 may be a mobile device, and may be operatedby a user participating in an interactive physical game.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms machine-readable medium andcomputer-readable medium refer to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term machine-readable signal refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (LAN), a wide area network (WAN), and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. For example, while a clientapplication is described as accessing the delegate(s), in otherimplementations the delegate(s) may be employed by other applicationsimplemented by one or more processors, such as an application executingon one or more servers. In addition, the logic flows depicted in thefigures do not require the particular order shown, or sequential order,to achieve desirable results. In addition, other actions may beprovided, or actions may be eliminated, from the described flows, andother components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinvention or of what may be claimed, but rather as descriptions offeatures that may be specific to particular embodiments of particularinventions. Certain features that are described in this specification inthe context of separate embodiments can also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a sub combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various system modulesand components in the embodiments described above should not beunderstood as requiring such separation in all embodiments, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

Particular embodiments of the subject matter have been described. Otherembodiments are within the scope of the following claims. For example,the actions recited in the claims can be performed in a different orderand still achieve desirable results. As one example, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults. In certain implementations, multitasking and parallelprocessing may be advantageous.

What is claimed is:
 1. A basketball backboard comprising: a housingcomprising: a display screen configured to display user image data ofone or more users; a plurality of sensors configured to generate sensordata regarding a shot attempt of a user; one or more imaging devicesconfigured to generate image data of the shot attempt; a speaker; acontrol unit, wherein the control unit is configured to: receive (i) thesensor data from one or more of the plurality of sensors and (ii) theimage data from the one or more imaging devices; based on the receivedsensor data, determine whether the shot attempt was successful; based onthe received image data and whether the shot attempt was successful,generate analytics that indicate (i) characteristics of the user, (ii)characteristics of the shot attempt, (iii) recommendations for improvingthe shot attempt for subsequent shot attempts, and (iv) gameperformance; provide output data representing the analytics to one ormore of (i) the speaker, (ii) the display screen, and (iii) a clientdevice of the user; and a network interface coupled to the control unit,the network interface configured to connect the basketball backboard toone or more additional basketball backboards, transmit user image datacaptured from the basketball backboard to the one or more additionalbasketball backboards, receive user image data captured from the one ormore additional basketball backboards, and provide the received userimage data to the control unit for display on the display screen.
 2. Thebasketball backboard of claim 1, wherein the plurality of sensorscomprise one or more of LIDAR sensors, motion sensors, trip sensors, andaccelerometers, and wherein: the LIDAR sensors are configured togenerate sensor data indicative of the shot attempt of the user and oneor both of an angle and a height of the basketball from the shotattempt; the motion sensors are configured to generate sensor dataindicative of one or more users on a court within a proximity to thebackboard; the trip sensors are configured to generate sensor dataindicative of whether the shot attempt was successful; theaccelerometers are configured to generate sensor data indicative of alocation of the basketball relative to the backboard based onaccelerometer data and a vibration pattern; and wherein the control unitis configured to: (i) detect the shot attempt of the user and one orboth of the angle and the height of the basketball from the shot attemptusing the sensor data from the LIDAR sensors; (ii) detect the one ormore users on the court within the proximity to the backboard using thesensor data from the motion sensors; (iii) determine whether the shotattempt was successful using the sensor data from the trip sensors; and(iv) determine the location of the basketball relative to the backboardbased on the accelerometer data and the vibration pattern using thesensor data from the accelerometers.
 3. The basketball backboard ofclaim 1, wherein the one or more imaging devices comprise one or moredepth sensing cameras or one or more RGB cameras, wherein the one ormore depth sensing cameras are configured to perform one or more of thefollowing (i) detect the user on a court, (ii) track movements of theuser, (iii) detect the basketball used by the user for the shot attempt,(iv) track movements of the basketball, (v) detect a body posture of auser, and wherein the one or more RGB cameras are configured to (i)record image data of a field of view of the court and (ii) record imagedata of an area underneath the backboard to detect when the shot attemptof the user corresponds to a layup.
 4. The basketball backboard of claim1, further comprising a rim coupled to the backboard.
 5. The basketballbackboard of claim 4, wherein the plurality of sensors comprise tripsensors configured to generate sensor data indicative of whether thebasketball passes through the rim from the shot attempt; and wherein thecontrol unit is configured to determine whether the basketball passesthrough the rim from the shot attempt using the sensor data from thetrip sensors.
 6. The basketball backboard of claim 4, wherein thecontrol unit is configured to provide the received image data to atrained machine-learning model to produce (i) the characteristics of theuser, (ii) the characteristics of the shot attempt, and (iii) gameperformance, wherein the characteristics of the user comprise anidentification of the user and a location of the user relative to thebackboard, wherein the characteristics of the shot attempt comprise anangle of basketball trajectory and an indication of whether thebasketball passes through the rim, wherein the game performancecomprises data associated with a game played by the user; and thecontrol unit is configured to store the characteristics of the user, thecharacteristics of the shot attempt, and the game performance in aprofile of the user in a server external to the backboard.
 7. Thebasketball backboard of claim 6, wherein the trained machine-learningmodel is configured to identify and track multiple users on a courtsimultaneously and the control unit is configured to: associate themultiple users identified by the trained machine-learning model eachwith a stored user profile; and update each of the stored user profileswith characteristics of each user and characteristics of a shot attemptof each user.
 8. The basketball backboard of claim 6, wherein the serverstores a plurality of profiles corresponding to different users.
 9. Thebasketball backboard of claim 6, wherein the control unit is configuredto: generate the recommendations for improving the shot attempt forsubsequent shot attempts, wherein the recommendations comprise one ormore of (i) a body posture, (ii) an arm angle, (iii) a release point ofthe basketball, and (iv) a trajectory of the basketball; display thegenerated recommendations on the display screen; and provide an audiblevoice output to the speaker to communicate the generated recommendationsto the user.
 10. The basketball backboard of claim 9, wherein thecontrol unit is configured to provide the generated recommendations tothe client device of the user over a network.
 11. The basketballbackboard of claim 6, wherein the control unit is configured to:determine resultant data based on the received sensor data thatcomprises one or more of (i) whether the shot attempt resulted in thebasketball passing through the rim, (ii) whether the shot attemptresulted in the basketball bouncing off a front side of the backboardand not passing through the rim, (iii) whether the shot attempt resultedin the basketball bouncing off the rim and not passing through the rim,(iv) location of the shot attempt of the user, (v) an arc of thebasketball during the shot attempt by the user; combine the resultantdata with (i) the characteristics of the user and (ii) thecharacteristics of the shot attempt output from the trainedmachine-learning model; and store the received sensor data, the receivedimage data, the combined resultant data, the characteristics of theuser, the characteristics of the shot attempt, and the generatedrecommendations in the profile of the user on the server.
 12. Thebasketball backboard of claim 4, wherein the control unit is configuredto: determine whether the shot attempt resulted in the basketballpassing through the rim based on: generating, in the received imagedata, an inner conical region and an outer conical region, the innerconical region comprises a first cone with a base that coincides withthe rim and a first height, the outer conical region comprises a secondcone with a radius centered at the center of the rim and a secondheight, determining whether the basketball enters a first portion of theouter conical region and exits a second portion of the outer conicalregion; in response to exiting the second portion of the outer conicalregion, determining whether the basketball enters a third portion of theinner conical region and exits the base of the inner conical region; andin response to determining that the basketball exits the base of theinner conical region, determining that the shot attempt resulted in amake as the basketball passed through the rim.
 13. The basketballbackboard of claim 12, wherein the control unit is configured to: inresponse to determining that the basketball enters the third portion ofthe inner conical region and does not exit the base of the inner conicalregion, determine that the shot attempt resulted in a miss as thebasketball did not passing through the rim.
 14. The basketball backboardof claim 1, wherein the speaker is configured to provide audible outputin response to receiving the output data representing the analytics fromthe control unit.
 15. The basketball backboard of claim 1, wherein thedisplay screen is configured to display one or more of (i) the imagedata from the one or more imaging devices, (ii) a heads up display (HUD)displaying shot attempts and shots made by the user, and (iii) imagedata from a second control unit connected over a network.
 16. Thebasketball backboard of claim 1, further comprising a protective layercoupled to the display screen.
 17. The basketball backboard of claim 16,wherein the protective layer comprises tempered glass.
 18. Thebasketball backboard of claim 16, further comprising a rim coupled tothe protective layer.
 19. The basketball backboard of claim 1, whereinthe control unit is configured to: receive an indication from the userto participate in a competition against a second user; connect to asecond control unit associated with a second backboard used by thesecond user over a network, wherein the second control unit is locatedat a geographically different location than the control unit; providethe received image data to the second control unit over the network;receive second image data from the second control unit over the network;provide the received second image data from the second control unit tothe display screen; count a number of shot attempts made by the userbased on the received sensor data and the received image data; receive asecond number of shot attempts made by the second user from the secondcontrol unit; provide to the display screen (i) the number of shotattempts made by the user and (ii) the second number of shot attemptsmade by the second user, wherein the display screen overlays the numberof shot attempts and the second number of shot attempts over thereceived second image data; and provide the number of shot attempts madeby the user to the second control unit.
 20. The basketball backboard ofclaim 1, wherein the control unit is configured to: receive anindication from the user to participate in a competition against asecond user in a local competition; provide the received image data tothe display screen; count a number of shot attempts made by the userbased on the received sensor data and the received image data; count anumber of shot attempts made by the second user based on the receivedsensor data and the received image data; and provide to the displayscreen (i) the number of shot attempts made by the user and (ii) thenumber of shot attempts made by the second user, wherein the displayscreen overlays the number of shot attempts and the second number ofshot attempts over the received image data.
 21. The basketball backboardof claim 1, wherein the housing comprises one or more layers.
 22. Acomputer-implemented method comprising: receiving an indication from afirst user of a first basketball backboard to communicate with a seconduser of a second basketball backboard; connecting, over a network, thefirst basketball backboard to the second basketball backboard;receiving, over the network at the first basketball backboard, imagedata captured by the second basketball backboard of the second user; andproviding the received image data of the second user to a display screenof the first basketball backboard, such that the first user can see theimage data of the second user on the display screen.
 23. Thecomputer-implemented method of claim 22, further comprising: counting anumber of shot attempts made by the first user of the first basketballbackboard based on received sensor data; and receiving, over thenetwork, a number of shot attempts made by the second user from thesecond basketball backboard.
 24. The computer-implemented method ofclaim 23, further comprising providing to the display screen of thefirst basketball backboard (i) the number of shot attempts made by thefirst user and (ii) the number of shot attempts made by the second user.25. The computer-implemented method of claim 22, further comprisingproviding, over the network, image data captured by the first basketballbackboard of the first user to the second basketball backboard.
 26. Anon-transitory computer-readable medium storing software comprisinginstructions executable by one or more computers which, upon suchexecution, cause the one or more computers to perform operationscomprising: receiving an indication from a first user of a firstbasketball backboard to communicate with a second user of a secondbasketball backboard; connecting, over a network, the first basketballbackboard to the second basketball backboard; receiving, over thenetwork at the first basketball backboard, image data captured by thesecond basketball backboard of the second user; and providing thereceived image data of the second user to a display screen of the firstbasketball backboard, such that the first user can see the image data ofthe second user on the display screen.
 27. The non-transitorycomputer-readable medium of claim 26, further comprising: counting anumber of shot attempts made by the first user of the first basketballbackboard based on received sensor data; and receiving, over thenetwork, a number of shot attempts made by the second user from thesecond basketball backboard.
 28. The non-transitory computer-readablemedium of claim 27, further comprising providing to the display screenof the first basketball backboard (i) the number of shot attempts madeby the first user and (ii) the number of shot attempts made by thesecond user.
 29. The non-transitory computer-readable medium of claim26, further comprising providing, over the network, image data capturedby the first basketball backboard of the first user to the secondbasketball backboard.